<html>
  <head>
    <title>uts插件或 uvue页面中使用 UniError</title>
  </head>
  <script>
     /*
                  三、uts插件或 uvue页面中使用 UniError

                          在 uni-app、uni-app x 中的错误信息建议统一使用 UniError对象，以便在发生错误时统一捕获处理，

                          特别是以下情况：

                                ①、在 uts 插件中封装API给uni-app使用时，返回的错误信息要求使用UniError对象。

                                ②、在uni-app x项目的uvue页面中，抛出错误要求使用UniError对象。

                          在App端， UniError 和 SourceError都是从uts Error类继承。


                          1、构造UniError对象

                                      UniError对象必须通过new操作符构造。

                                    ★、语法：

                                        new UniError(),
                                        new UniError(errSubject:string,errCode:number,errMsg:string)

                                    ★、参数：
                                        ①、errSubject 统一错误主题(模块)名称，字符串类型，存在多级模块时使用 "::"分割，级" 模块名称::二级模块名称"，
                                            
                                                      参考 errSubject (模块/主题)名称： https://uniapp.dcloud.net.cn/tutorial/err-spec.html#errsubject

                                        ②、errCode 统一错误码，数字类型，通常0表示成功，其它为错误码

                                        ③、errMsg 统一错误描述信息，字符串类型，应该准确描述引起的错误原因

                                    ★、示例：
                                        // 创建一个 UniError
                                        let  error = new UniError("uni-apidName",6000,"Custom uni error")

                                        // 设置 data 数据（可选）
                                        error.data ={
                                            "dataName":"custom data value"
                                        }


                          2、构造SourceError对象
                                     
                                    当错误信息是由三方SDK或其他模块引起时，可以将三方SDK或其他模块的错误信息封装在SourceError中作为UniError的源错误：、

                                    ★、语法：

                                          new  SourceErrot()
                                          new  SourceError(message:string)

                                    ★、参数：

                                           message源错误小数信息，字符串类型

                                    ★、示例：

                                           // 创建一个SourceError
                                           let sourceError = new SourceError("Third SDK error message");

                                           // 创建一个 UniError
                                           let  error = new UniError("uni-apiName",60000,"Custom uni error");

                                           // 设置源错误
                                           error.cause = sourceError;



                           3、构造 UniAggregateError对象

                                   当错误时由多个 SourceError源错误引起的时，可以将多个源错误放到一个 UniAggregateError对象中

                                   ★、语法

                                           new  UniAggregateError(errors:Arragy<SourceError>)

                                   ★、参数

                                          errors: 源错误列表 ，Array类型

                                   ★、示例：

                                          // 创建一个UniAggregateError
                                          let aggregateError = new UniAggregateError([new SourceError("First 3rd SDK error message"), new SourceError("Second 3rd SDK error message")]);

                                          // 创建一个UniError
                                          let error = new UniError("uni-apidName",60000,"Custom uni error");

                                          // 设置源错误
                                          error.cause = aggregateError;
              */
  </script>
</html>